package com.ruoyi.shop.member.mapper;

import java.util.Date;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.ruoyi.shop.member.domain.ShopMember;

/**
 * 会员用户Mapper接口
 * 
 * @author xuxiang
 * @date 2022-10-21
 */
public interface ShopMemberMapper {
	/**
	 * 查询会员用户基本信息
	 * 
	 * @param memberId 会员用户主键
	 * @return 会员用户
	 */
	public ShopMember selectMemberById(Long memberId);

	/**
	 * 查询会员用户列表
	 * 
	 * @param ShopMember 会员用户
	 * @return 会员用户集合
	 */
	public List<ShopMember> selectMemberList(ShopMember member);

	/**
	 * 新增会员用户
	 * 
	 * @param ShopMember 会员用户
	 * @return 结果
	 */
	public int insertMember(ShopMember member);

	/**
	 * 修改会员用户
	 * 
	 * @param ShopMember 会员用户
	 * @return 结果
	 */
	public int updateMember(ShopMember member);

	/**
	 * 删除会员用户
	 * 
	 * @param userId 会员用户主键
	 * @return 结果
	 */
	public int deleteMemberById(Long memberId);

	/**
	 * 通过账号(登录账号或手机号)查询会员用户
	 * 
	 * @param userName 账号
	 * @return 会员用户
	 */
	public ShopMember selectMemberByUserName(String userName);

	/**
	 * 通过登录账号查询会员
	 * 
	 * @param loginName 登录账号
	 * @return 会员用户
	 */
	public ShopMember selectMemberByLoginName(String loginName);

	/**
	 * 通过手机号查询会员
	 * 
	 * @param mobile 手机号
	 * @return 会员用户
	 */
	public ShopMember selectMemberByMobile(String mobile);

	/**
	 * 重置用户密码
	 * 
	 * @param memberId 会员Id
	 * @param password 密码
	 * @return 结果
	 */
	public int resetPwd(@Param("memberId") Long memberId, @Param("password") String password);

	/**
	 * 更新会员相关数据
	 * 
	 * @param ShopMember 会员数据
	 * @return 结果
	 */
	public int updateMemberData(ShopMember member);

	/**
	 * 查询注册会员数
	 * 
	 * @return
	 */
	public int queyMemberCount(Date date);

}
